package com.songshuang.myutilsboot.stlf.model;

import java.util.ArrayList;
import java.util.List;

public final class Models {
    private Models() {}

    public static final class AnnModelVersionInfo {
        public String start_time;
        public String end_time;
        public double pv_nlng;
        public double pv_nlat;
        public boolean isNew;
    }

    public static final class GlobalRc {
        public long debug_flag;
        public String pv_model_version;
        public double pv_nlng;
        public double pv_nlat;
        public long pwrbase;
        public long pwrtol;
        public double anntol;
        public long ann_flag;
        public long is_new; // isNew in C++ json
        public long srand_num;
        public long sdnum;
        public long varNum;
        public long xnum;
        public long ynum;
        public long hnum;
        public List<String> Infacts = new ArrayList<>();
    }

    public static final class HisData {
        public String Date;
        public long Sd;
        public double MW0;
        public double Temp;
        public double windSpeed;
        public double windDir;
        public double Pa;
        public double Transp;
        public double Dni;
        public double Humid;
        public double Cloud;
        public String Descr;
    }

    public static final class ForData {
        public String Date;
        public long Sd;
        public double MW;
        public double Temp;
        public double windSpeed;
        public double windDir;
        public double Pa;
        public double Transp;
        public double Humid;
        public double Cloud;
        public double Dni;
        public String Descr;
    }

    public static final class InputParameter {
        public GlobalRc global_rc;
        public List<HisData> his_data = new ArrayList<>();
        public List<ForData> for_data = new ArrayList<>();
    }

    public static final class SigSdInf {
        public String Date;
        public long Sd;
        public double MW0;
        public double MW;
        public double Err;
        public double Pct;
    }

    public static final class ForecastInfo {
        public String start_time;
        public String end_time;
        public String model_version; // only for ANN
        public List<SigSdInf> His_Report = new ArrayList<>();
        public List<SigSdInf> Fore_Report = new ArrayList<>();
    }
}


